Identification and location of personal area network device

ABSTRACT

A method, device and system are disclosed for geo-locating a device. In one embodiment, a first wireless transmitter/receiver pages a second wireless transmitter/receiver to establish a communication. A plurality of packets transmitted by the first wireless transmitter/receiver and transmitted by the second wireless transmitter/receiver are received by a wireless receiver. The reception time of packets transmitted by the first wireless transmitter/receiver and the second wireless transmitter/receiver is recorded. A time delay based at least in part on the recorded reception times of each packet is calculated, and a location of the second wireless device based on the calculated time delay is determined. A target location of the second wireless transmitter/receiver is determined based on a plurality of the determined locations of the second wireless transmitter/receiver.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is related to and claims priority to U.S. patentapplication Ser. No. 16/810,495, filed on Mar. 5, 2020, entitled“IDENTIFICATION AND LOCATION OF PERSONAL AREA NETWORK DEVICE,” whichclaims priority to U.S. Provisional Patent Application No. 62/847,041,filed May 13, 2019, entitled “IDENTIFICATION AND LOCATION OF PERSONALAREA NETWORK DEVICE”, the entireties of both of which are incorporatedherein by reference.

TECHNICAL FIELD

The present disclosure relates to wireless communications, and inparticular to methods and devices for the discovery and geo-location ofan Un-Discoverable Classic Bluetooth Basic Rate (BR) device.

BACKGROUND

The Bluetooth system is specified in “Specification of the Bluetooth®System, Covered Core Package Version: 5.0, Publication Date: Dec. 6,2016 (“Specification of the Bluetooth® System”). Bluetooth operates inthe unlicensed Industrial, Scientific, and Medical (ISM) band from 2.400to 2.4835 GHz. Classic Bluetooth Basic Rate (BR) and Bluetooth LowEnergy (BLE) employ Gaussian Frequency-Shift Keying (GFSK) as theprimary modulation scheme, while Classic Bluetooth Enhanced Data Rate(EDR) incorporates differential phase-shift keying (DPSK) for increasedthroughput. BR may occupy any of 79 radio frequency (RF) channels,spaced by 1 MHz, whereas BLE is limited to 40 RF channels, spaced by 2MHz. For both BR and BLE, the nominal channel symbol rate is 1 MHz, witha nominal channel symbol duration of 1 μs.

A more complete understanding of the present embodiments, and theattendant advantages and features thereof, will be more readilyunderstood by first describing relevant Bluetooth system details.Relevant details of the Bluetooth system are therefore presented herein.A more complete description can be obtained by reference to theSpecification of the Bluetooth® System, the entirety of which isincorporated herein by reference.

Bluetooth is a time division multiplex (TDM) system that includes a“Master” device, which initiates an exchange of data, and a “Slave”device which responds to the Master. The TDM slot duration is 625 μs,and the maximum payload length is such that certain packet types mayextend up to five slots in length. Each device will hop to an RF channelonce per packet and Slave devices will utilize the timing of theirMaster to hop in synchronization.

There are two basic types of data packets and links: AsynchronousConnectionless (ACL) and Synchronous Connection Oriented (SCO). ACL isused for data communications with just one ACL link per device pair. SCOis used for real time audio links, and each device may support up to 3SCO links at one time.

FIG. 1 is a diagram of the receive/transmit (RX/TX) cycle for the mastertransceiver in normal mode for single-slot packets. Each TX slot and RXslot is of duration 625 μs. The master transceiver transmits in TX slot110 on hop channel f(k) and is followed by the RX slot 120, on hopchannel f(k+1). The master then transmits in the next slot 130 on hopchannel f(k+2). The time between consecutive TX slots and RX slots istherefore 1250 μs. FIG. 2 is a diagram of the corresponding RX/TX cycleof the slave transceiver. The slave transceiver receives during slot210, on hop channel f(k) and transmits on hop channel f(k+1). Theduration of the transmitted packet 140 is less than or equal to 426 μs.

FIG. 3 is a diagram that shows the format of the unique Bluetooth DeviceAddress (BD_ADDR) 300. The BD_ADDR 300 is split into three parts, loweraddress part (LAP) 310, upper address part (UAP) 320, andnon-significant address part (NAP) 330. In order to establish aconnection to a Bluetooth device only the UAP and LAP are required. TheNAP is informative and devices often use a default NAP to establishconnectivity.

The location of wireless devices can be performed by various methods.These methods may be classified as active, passive and combined activeand passive. In an active location scheme, a device that is determiningthe location or range, the measuring device, transmits certain packetsto the device being located, the target device, and the common method isto measure the time of arrival (TOA) of the response from the targetdevice and compare that to the time of departure (TOD) that the packetwas transmitted by the measuring device so as to determine the time forthe round trip (RTT). TOD may be measured for a packet that istransmitted from the measuring station addressed to the target station.The TOA of the response from the target station, at the measuringstation, is then also measured. If the turnaround time for the targetstation to receive the packet from the measuring station and to start totransmit the response is known, then the time difference at themeasuring station between the TOA and the TOD, minus the turnaround timeat the target station will be directly proportional to twice thedistance of the target station from the measuring station. For example,if the target station is a wireless device based upon Bluetoothtechnology, and if the packet transmitted from the measuring station tothe target station is a Poll packet, the response from the targetstation will generally be a Null packet. The effective turnaround timeat the target will be the nominal 625 μs slot time. Hence, the timedelay, td, between the measuring station and the target station may bedetermined from the calculation td=(TOA−TOD−Slot Time)/2 and thedistance between the measuring station and the target station is thentd×c, where c is the speed of light. This method of estimating thedistance to a target station by measuring the TOD and TOA and accountingfor the turnaround time is known in the art.

In order to geo-locate a Bluetooth device by measuring the time delaytd, a series of packet exchanges may be utilized. In the general sensethis requires a regular establishment across several connection layerswith security, pairing, and encryption. However, to geo-locate theBluetooth device such that no interaction from the user of the targetdevice is required, a regular establishment cannot be used.

SUMMARY

According to one aspect of the invention, a method is provided for awireless receiver, the wireless receiver being in communication with afirst wireless transmitter/receiver that pages a second wirelesstransmitter/receiver to establish a communication between the firstwireless transmitter/receiver and the second wirelesstransmitter/receiver, the wireless receiver and the first wirelesstransmitter/receiver being movable to a plurality of differentlocations. At each of the plurality of different locations of thewireless receiver, and for each establishment of a communication betweenthe first wireless transmitter/receiver and the second wirelesstransmitter/receiver, the location of the wireless receiver and thefirst wireless transmitter/receiver is recorded. A plurality of packetstransmitted by the first wireless transmitter/receiver and transmittedby the second wireless transmitter/receiver are received. For each ofthe received plurality of packets, reception times of packetstransmitted by the first wireless transmitter/receiver and the secondwireless transmitter/receiver are recorded. If a predefined amount oftime has passed without receipt of a packet, calculating a time delay,td, based at least in part on the recorded reception time of eachpacket, and determining a location of the second wirelesstransmitter/receiver based on the calculated time delay. A targetlocation of the second wireless transmitter/receiver is determined basedon a plurality of the determined locations of the second wirelesstransmitter/receiver.

According to this aspect, in some embodiments, the first wirelesstransmitter/receiver and the second wireless transmitter/receiver areClassic Bluetooth Basic Rate devices. In some embodiments, theestablishment of a communication between the first wirelesstransmitter/receiver and the second wireless transmitter/receiver isinitiated by the sending of a Page message from the first wirelesstransmitter/receiver to the second wireless transmitter/receiver, andthe plurality of packets transmitted by the first wirelesstransmitter/receiver and transmitted by the second wirelesstransmitter/receiver is increased by the transmission of a LinkManagement Protocol (LMP) name request from the first wirelesstransmitter/receiver to the second wireless transmitter/receiver. Insome embodiments, the time delay, td, is determined as td=(Shift Time,MOD (2×slot time)−slot time)/2, wherein Shift Time, MOD (2×slottime)>slot time, and where “Shift Time” is a recorded reception time ofa packet referenced to the recorded reception time of a first receivedpacket by the wireless receiver, and “slot time” is a time divisionmultiplex (TDM) slot duration of a wireless system comprising thewireless receiver, the first wireless transmitter/receiver and thesecond wireless transmitter/receiver.

In another embodiment, for each of the received plurality of packets, apacket type is identified, and if the identified packet type is one of afirst packet type and a second packet type, the reception time of theidentified packet is recorded. In some embodiments, the first packettype is a POLL and the second packet type is a NULL.

According to another aspect, a wireless receiver is provided and isconfigured to receive packets from a first wireless transmitter/receiverthat pages a second wireless transmitter/receiver to establish acommunication between the first wireless transmitter/receiver andreceive packets from the second wireless transmitter/receiver. Thewireless receiver and the first wireless transmitter/receiver aremovable to a plurality of different locations. The wireless receiverincludes a receiver configured to receive a plurality of packetstransmitted by the first wireless transmitter/receiver and transmittedby the second wireless transmitter/receiver at each of the plurality ofdifferent locations of the wireless receiver and for each establishmentof a communication between the first wireless transmitter/receiver andthe second wireless transmitter/receiver. The wireless receiver furtherincludes processing circuitry configured to, at each of the plurality ofdifferent locations of the wireless receiver, record the location of thewireless receiver and the first wireless transmitter/receiver. Theprocessing circuitry is further configured to, for each of the receivedplurality of packets, record reception times of packets transmitted bythe first wireless transmitter/receiver and the second wirelesstransmitter/receiver. If a predefined amount of time has passed withoutreceipt of a packet, the processing circuitry is configured to calculatea time delay, td, based at least in part on recorded reception time ofeach packet, and determine a location of the second wirelesstransmitter/receiver based on the calculated time delay. The processingcircuitry is further configured to determine a target location of thesecond wireless transmitter/receiver based on a plurality of thedetermined locations of the second wireless transmitter/receiver.

In another embodiment, the wireless receiver is a Classic BluetoothBasic Rate device. In some embodiments, the establishment of acommunication between the first wireless transmitter/receiver and thesecond wireless transmitter/receiver is initiated by the sending of aPage message from the first wireless transmitter/receiver to the secondwireless transmitter/receiver, and the plurality of packets transmittedby the first wireless transmitter/receiver and transmitted by the secondwireless transmitter/receiver is increased by the transmission of a LinkManagement Protocol (LMP) name request from the first wirelesstransmitter/receiver to the second wireless transmitter/receiver. Insome embodiments, the processing circuitry is further configured todetermine the time delay, td, as td=(Shift Time, MOD (2×slot time)−slottime)/2, wherein Shift Time, MOD (2×slot time)>slot time, and where“Shift Time” is a recorded reception time of a packet referenced to therecorded reception time of a first received packet by the wirelessreceiver, and “slot time” is a time division multiplex (TDM) slotduration of a wireless system comprising the wireless receiver, thefirst wireless transmitter/receiver and the second wirelesstransmitter/receiver.

In another embodiment, the processing circuitry is further configuredto, for each of the received plurality of packets, identify a packettype, and if the identified packet type is one of a first packet typeand a second packet type, record the reception time of the identifiedpacket. In another embodiment, the first packet type is a POLL and thesecond packet type is a NULL.

According to another aspect, a wireless communication system movable toa plurality of different locations is provided. The wirelesscommunication system includes a first wireless transmitter/receiverconfigured to initiate a paging sequence between the first wirelesstransmitter/receiver and a second wireless transmitter/receiver toestablish a communication between the first wirelesstransmitter/receiver and the second wireless transmitter/receiver. Thewireless communication system further includes a wireless receiver,including a receiver configured to receive a plurality of packetstransmitted by the first wireless transmitter/receiver and transmittedby the second wireless transmitter/receiver at each of the plurality ofdifferent locations of the wireless receiver. The wireless communicationsystem further includes a processing circuitry configured to, at each ofthe plurality of different locations of the wireless receiver, recordthe location of the wireless receiver and the first wirelesstransmitter/receiver. The processing circuitry is further configured to,for each of the received plurality of packets, record reception times ofpackets transmitted by the first wireless transmitter/receiver and thesecond wireless transmitter/receiver. The processing circuitry is alsoconfigured to, if a predefined amount of time has passed without receiptof a packet, calculate a time delay, td, based at least in part on therecorded reception time of each packet, and determine a location of thesecond wireless transmitter/receiver based on the calculated time delay.The processing circuit is further configured to determine a targetlocation of the second wireless transmitter/receiver based on aplurality of the determined locations of the second wirelesstransmitter/receiver.

In one embodiment, the wireless receiver, the first wirelesstransmitter/receiver and the second wireless transmitter/receiver areClassic Bluetooth Basic Rate devices. In another embodiment, the firstwireless transmitter/receiver is configured to initiate a Remote NameRequest after initiating the paging sequence between the first wirelesstransmitter/receiver and the second wireless transmitter/receiver, and acommunication connection between the first wireless transmitter/receiverand the second wireless transmitter/receiver is established.

In some embodiments, the processing circuitry of the wireless receiveris further configured to determine the time delay, td, as td=(ShiftTime, MOD (2×slot time)−slot time)/2, wherein Shift Time, MOD (2×slottime)>slot time, and where “Shift Time” is a recorded reception time ofa packet referenced to the recorded reception time of a first receivedpacket by the wireless receiver, and “slot time” is a time divisionmultiplex (TDM) slot duration of a wireless system comprising thewireless receiver, the first wireless transmitter/receiver and thesecond wireless transmitter/receiver.

In another embodiment, the processing circuitry of the wireless receiveris further configured to, for each of the received plurality of packets,identify a packet type, and if the identified packet type is one of afirst packet type and a second packet type, record the reception time ofthe identified packet. In some embodiments, the first packet type is aPOLL and the second packet type is a NULL.

In other embodiments, the wireless receiver and the first wirelesstransmitter/receiver are co-located when in operation. In someembodiments, the wireless communication system further comprises aplatform location module configured to provide the location of thewireless receiver, a general-purpose processor, and a time clockconfigured to provide a current time to the wireless communicationsystem, which are interconnected to the first wirelesstransmitter/receiver and the wireless receiver.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present embodiments, and theattendant advantages and features thereof, will be more readilyunderstood by reference to the following detailed description whenconsidered in conjunction with the accompanying drawings wherein:

FIG. 1 is a diagram of the receive/transmit (RX/TX) cycle for the mastertransceiver in normal mode for single-slot packets;

FIG. 2 is a diagram of the receive/transmit (RX/TX) cycle of the slavetransceiver;

FIG. 3 is a diagram that shows the format of the unique Bluetooth DeviceAddress (BD_ADDR);

FIG. 4 is a table of the initial messaging between master and slaveduring start up for the paging substates;

FIG. 5 is a timing diagram that describes the ranging method of thepresent disclosure that may be used to determine the distance betweentwo Bluetooth devices, a Master and a Slave;

FIG. 6 is a diagram describing the sequence of packet exchanges betweena master and a slave when the master uses a Link Management Protocol(LMP) Name Request connection;

FIG. 7 is an example table of the protocol capture of the packetexchanges described above with reference to FIG. 6 where the protocolanalyzer is located close to the master;

FIG. 8 is a table derived from the exemplar table FIG. 7;

FIG. 9 illustrates a block diagram of an example wireless communicationsystem which, according to an embodiment of the disclosure, may beconfigured to perform the functions described herein;

FIG. 10 is a flow diagram of a process of one embodiment of thedisclosure for determining the location of a device; and

FIG. 11 is a flow diagram of a process of another embodiment of thedisclosure for determining the target location of a second wirelessdevice based on a plurality of determined locations of the secondwireless transmitter/receiver.

DETAILED DESCRIPTION

Method and devices are disclosed that geo-locates a BR Bluetooth deviceby initializing, establishing and terminating a Bluetooth connectionwithout the need for any interaction by the user of the device.

The default state of a Bluetooth device is the Standby state. In thisstate, the device may be in a low-power mode. A device may leave theStandby state to scan for page or inquiry messages or to page or inquireitself. In order to establish new connections, the paging procedure orthe synchronization scan procedure is used. Only the Bluetooth deviceaddress, as discussed above with reference to FIG. 3, is required to setup a connection using the paging procedure. A device that establishes aconnection using a page procedure will automatically become the masterof the connection.

In a Connection state, the connection has been established and packetsmay be sent back and forth and the device uses the basic or adaptedchannel hopping sequence. A device can transition to the Connectionstate from the page/page scan substates and starts with a Poll packet,sent by the master that verifies the switch to the master's timing andchannel frequency hopping.

A device can scan for page messages from the Standby state or theConnection state. When a device leaves the Standby mode to scan for pagemessages it shall select the scan frequency according to the pagehopping sequence determined by the device's BD_ADDR.

FIG. 4 is a table of the initial messaging between a master and a slaveduring start up for the paging substates. In step 1, 401, the masterdevice is in the “page” substate and the slave device in the “page scan”substate. It is assumed that in this step 401 that the page message sentby the master is received correctly by the slave. On receiving the pagemessage, in step 2, 402, the slave device transmits a slave pageresponse message (the slave's device access code) and enters the “slaveresponse” substate. The master waits for a reply from the slave and whenthis arrives in step 2, 402, the master enters the “master response”substate in step 3, 403. In step 3, 403, the slave awaits the arrival ofa Frequency Hopping Sequence (FHS) packet from the master and if it isreceived, in step 4, 404, then the slave responds with a slave pageresponse message to acknowledge the reception of the FHS packet. Duringthe initial message exchange, steps 1 to 4, 401 to 404, all parametersare derived from the slave's device address, BD_ADDR, and that only thepage hopping and page response hopping sequences are used (derived fromthe slave's device address).

Finally, in step 5, 405, the slave device enters the Connection stateand the slave device uses the master's clock and the master's BD_ADDR todetermine the basic channel hopping sequence and channel access code.The FHS packet in step 3, 403, contains all the information for theslave to construct the channel access code. The connection mode startswith a Poll packet transmitted by the master in step 5, 405, and theslave, in step 6, 406, may reply with any type of packet but a Nullpacket is generally used for this response.

FIG. 5 is a timing diagram that describes the ranging method of thepresent disclosure that may be used to determine the distance betweentwo Bluetooth devices, a Master device 510 (also referred to herein as“Master 510”) and a Slave device 550 (also referred to herein as “Slave550”). The Master 510 has a TX Slot 515 followed by an RX Slot 516, eachnominally 625 μs in duration. The TX Slot 515 starts at time t1 571 andthe RX Slot 516 starts at time t5 575. Conversely the Slave 550 has anRX Slot 555 followed by a TX Slot 556, each nominally 625 μs induration. The RX Slot 555 starts at time t2 572 and the TX slot startsat time t6 576. At time t1 571, the Master 510 may transmit a packet 520to the Slave 550. This transmission packet 520 may be received at theSlave 550 at time t2 572. The time (t2-t1) is the propagation time ofthe packet 520 in travelling the distance between the Master 510 and theSlave 550. The Slave 550 may then respond to packet 520 with packet 561in the next TX slot 556 at time t6 576. This packet 561 may be receivedby the Master 510 at time t7 577, in the corresponding RX Slot 516 ofthe Master 510. The time (t7-t6) is the propagation time of the packet561 in travelling the distance between the Slave 550 and the Master 510.The time t1 571 is the TOD of packet 520 and the TOA of the responsepacket 561 is t7 577. The turnaround time is (t6-t2), the slot time ofthe Slave 550, nominally 625 μs. Hence, the time delay, td, which isequal to (t2-t1) and (t7-t6), between the Master 510 and the Slave 550may be determined from the calculationstd=[t7−t1−(t6−t2)]/2 or td=(TOA−TOD−Slot Time)/2  (1)and the distance between the Master 510 and the Slave 550 is then td×c,where c is the speed of light. The delta time (t7-t1) or (TOA-TOD)corresponds to the time that the Master 510 receives packet 561 minusthe time that the Master 510 transmitted packet 520.

At time t8 578, at the start of the Master's next TX slot 517, anotherpacket 521 may be transmitted by the Master 510 to the Slave 550. Thispacket may be received by the Slave 550 at time t9 579 and at the startof the Slave's next TX slot 558, at time t10 580, the Slave 550 maytransmit the response packet 562 to the Master 510 which may be receivedby the Master 510 at time t11 581. For this packet exchange 521 and 562the time delay, td′, which is equal to (t9-t8) and (t11-t10), betweenthe Master 510 and the Slave 550 may be determined from the calculationtd′=[t11−t8−(t10−t9)]/2,  (2)where t11 is the TOA of packet 562, t8 is the TOD of packet 521 and(t10-t9) is the Slot time of the Slave 550. The delta time (t11-t8)corresponds to the time that the Master 510 receives packet 562 minusthe time that the Master 510 transmitted packet 521.

If the position of the Master is known, then by deriving values for tdthat result from the exchange of a number of packets between the Master510 and the Slave 550, the distance from the Master 510 to the Slave 550may be calculated. If the Master 510 moves in relation to the Slave 550,such that the distance from the Master 510 to the Slave 550 iscalculated for varying angles between the two, e.g. the Master is in avehicle or is airborne, then the location of the Slave may becalculated. Such methods for calculating a location based on a series oftime delay measurements taken at varying angles between a master andslave are known in the art and are therefore not described herein.

The more packets that are exchanged between the Master 510 and the Slave550, the better the accuracy of the calculated distance td×c. Basically,if the measuring error of td in each packet is Δt, then if there are Npacket exchanges, the error is reduced by the square root of N. Forexample, if td is measured in microseconds, the maximum measurementerror is ±1 μs. If td is measure over 100 packets, then the measurementerror is reduced by 10, i.e. ±0.1 μs.

As described above with reference to FIG. 4 a targeted Bluetooth devicemay be paged by another Bluetooth device. The targeted Bluetooth devicewill act as the slave and the Bluetooth device that initiates the pageacts as the master. Once the sequence of exchanges as described abovewith reference to FIG. 4 has completed, i.e. the master transmits thePoll packet in step 5 405, then a brief temporary connection may occur.

Initializing, establishing and terminating a Bluetooth connectionwithout the need for any interaction by the user of the device impliesthat an explicit ACL Connection should not be established. As discussedabove with reference to FIG. 5, in order to measure the distance betweentwo Bluetooth devices a sufficient number of packets are required to beexchanged in order to produce a required accuracy.

A method is disclosed that sets up a temporary connection for a BRdevice, causes a number of packets to be exchanged and thenautomatically disconnects; all without the need of any userparticipation. The user of the targeted device is unaware of theprocess.

FIG. 6 is a diagram describing the sequence of packet exchanges betweena Master 510 and a Slave 550 when the Master 510 uses an LMP NameRequest connection. The sequence starts 610 when the Master 510 pagesthe Slave 550 as discussed above with reference to FIG. 4. Upon receiptof a packet, step 406, from the Slave 550, the Master 510 may transmitan LMP_features_req request packet, 611, to the Slave 550. The Slave 550may then respond with an LMP_features_res response packet 612. Ifextended features are supported, then an exchange of LMP_feature_req_ext613 and LMP_feature_res_ext 614 request and response packets may takeplace. The Master 510 may then transmit an LMP_name_req request packet615 and the Slave 550 may respond with an LMP_name_res response packet616. As an ACL Connection is not existing between the Master 510 and theSlave 550, after receiving the LMP_name_res response packet 616, theMaster 510 may transmit an LMP_detach packet 617 to disconnect.

During the exchange of packets described above with reference to FIG. 6,in order to maintain the channel hopping sequence and synchronization,in addition to the packets 611 to 617 the Master 510 and the Slave 550may transmit Poll packets and Null packets respectively. A Bluetoothprotocol analyzer may be used to capture the Bluetooth packets. Inpractice, such a protocol analyzer cannot be relied upon to captureevery packet and allowance should be made accordingly.

FIG. 7 is an example table of the protocol capture of the packetexchanges described above with reference to FIG. 6 where the protocolanalyzer is located in the same general proximity, e.g., at the samelocation, as the Master 510. Column 710 displays the channel number.Column 711 displays the packet type. Column 712 displays the device,Master 510 or Slave 550 that transmitted the packet. Column 713 displaysthe packet description of the transmitted packet. Column 714 displaysthe time that the packet was received, TOA. Column 715 displays thedelta time which is the time that the present packet was detected afterthe time of the previously detected packet. Column 716 displays theshift time which is the time that the present packet was received afterthe first received packet. At line 720, the FHS packet is displayed thatcorresponds to the Step 3 403 of the paging sequence discussed abovewith reference to FIG. 4. At line 721 the Poll packet is displayed thatcorresponds to Step 5, 405 of the paging sequence described above withreference to FIG. 4, and at line 722 the Slave 550 responds with a Nullpacket. At lines 725, 730, 735/745, 740/750, 755, 760, and 765 the LMPpacket descriptions corresponding to packets 611, 612, 613, 614, 615,616, and 617 are displayed. As discussed above with reference to FIG. 6several Poll packets, transmitted by the Master 510, and Null packets,transmitted by the Slave 550, are also displayed. For example, at lines751 and 752 a Poll packet transmitted by the master on channel 64 isfollowed by a Null packet transmitted by the slave, respectively. Thecorresponding delta times, column 715 at line 752, is 627 μs, which, asdiscussed above with reference to FIGS. 1 and 2, relates to the nominal625 μs slot times 110 and 220. At lines 736, 737, 738, and 739 Pollpackets, transmitted by the master, were detected and displayed. Thecorresponding delta times at column 715 lines 736, 737, 738 and 739, is1250 μs, which, as discussed above with reference to FIG. 1, relates tothe 1250 μs time between TX slots 110 and 130.

As discussed above with reference to FIG. 5 and FIG. 7, the delta timereadings will be in accordance with the time slots and the distance ofthe Slave 550 from the Master 510. All the packet types leading up to anLMP_name_req request packet 615 and the LMP_name_res response packet 616are all single slot packets hence the time deltas ideally would be theslot time, nominally 625 μs, plus twice the propagation time, asdiscussed above with reference to FIG. 5.

FIG. 8 is a table derived from the example table 700 in FIG. 7. ColumnsRole 712, shift time 716 and delta time 715, in μs, are as shown in FIG.7. Lines 820 and 821 both refer to packets transmitted by the Master510. The delta time for line 821 is 624 whereas the delta time for line821 is 1250 μs. Line 830 refers to a packet transmitted by the Master510 and line 831 refers to a packet transmitted by the Slave 550. Inline 830 the delta time is 623 and in line 831 the delta time is 626 μs.It is not possible to distinguish between packets transmitted by theMaster 510 or the Slave 550 by reference to the delta time. In order todistinguish between packets that were transmitted by the Master 510 orthe Slave 550, the shift time, modulus (1250) is calculated. The shifttime, modulus 1250, is shown in column 810. In column 810 lines 820,821, and 830, the value is 0, indicating that the packet was transmittedby the Master 510, whereas in column 810 lines 825, 827, and 831 thevalue is nominally the slot time plus twice the propagation time,indicating that the packet was transmitted by the Slave 550. Hence, thepropagation time, td, may be calculated from the values as given incolumn 810:td=(Shift Time MOD (1250)−slot time)/2 where Shift Time MOD (1250)>slottime  (3)

FIG. 9 illustrates a block diagram of an example wireless communicationsystem 900 which, according to an embodiment of the disclosure, may beconfigured to perform the functions described herein. The embodimentdescribed herein is that where wireless communication system 900includes the Master 510 that operates as a wirelesstransmitter/receiver, and a wireless receiver 950 that performs thefunctions of a Bluetooth protocol analyzer as discussed above withreference to FIGS. 5, 6 and 7. Master 510 may be any device configuredto wirelessly receive signals and transmit signals, and may beconfigured to execute any of the methods of the Bluetooth Specification.Wireless receiver 950 may be any device configured to wirelessly receivesignals, and may be configured to execute any of the methods of theBluetooth Standard. The wireless communication system 900 may alsoinclude a general purpose processor 990 and a time clock 995 which areinterconnected to the two stations (Master 510 and wireless receiver950) by a data bus 985.

In some embodiments, the Master 510 includes an RF front end 920 thatincludes an RF transmitter 922 and an RF receiver 921, a baseband 925,and processing circuitry 930 that includes processor 931 and memorymodule 932. The Master 510 also includes one or more wireless antennassuch as wireless antenna 940. The RF receiver 921 may perform thefunctions of low noise amplification, filtering and frequency downconversion for the reception of Bluetooth packets via the antenna 940.The RF transmitter 922 may perform the functions of up conversion andamplification for the transmission of Bluetooth packets via the antenna940. The baseband 925 may perform the functions of modulation,de-modulation, coding and de-coding, as described in the BluetoothSpecification. In some embodiments, the processing circuitry 930 and/orthe processor 931 may comprise integrated circuitry for processingand/or control, e.g., one or more processors and/or processor coresand/or Field Programmable Gate Arrays (FPGAs) and/or ApplicationSpecific Integrated Circuitry (ASICs) configured to execute programmaticsoftware instructions. In some embodiments the some or all of thefunctions of the RF front end 920 may be performed by the processingcircuitry 930. The processing circuitry 930 may be configured to controlany of the methods and/or processes described herein and/or to causesuch methods, and/or processes to be performed, e.g., by the baseband925 and the RF front end 920. The memory module 932 may be configured tostore data, programmatic software code and/or other informationdescribed herein. In some embodiments, the software may includeinstructions that, when executed by the processing circuitry 930, causesthe processing circuitry 930 to perform the processes described hereinwith respect to the wireless transmitter/receiver 510.

In some embodiments, the wireless receiver 950 includes an RF front end960 that includes a receiver 961, a baseband 965 and processingcircuitry 970 that includes a processor 971 and a memory module 972, andone or more wireless antennas such as wireless antenna 980. The RF frontend 960 and receiver 961 may perform the usual functions of an RFreceiver front end such as low noise amplification, filtering andfrequency down conversion so as to condition the received signalsuitable for inputting to the baseband 965. The baseband 965 may performthe functions of demodulation and decoding so as to condition thereceived signal suitable for inputting to the processing circuitry 970.In some embodiments the RF front end 960 and/or the processing circuitry970 may comprise integrated circuitry for processing and/or control,e.g., one or more processors and/or processor cores and/or FPGAs and/orASICs configured to execute programmatic software instructions. In someembodiments the functions of the RF receiver 961 may be performed by theprocessing circuitry 970. The processing circuitry 970 may be configuredto control any of the methods and/or processes described herein and/orto cause such methods, and/or processes to be performed, e.g., by thewireless receiver 950. The memory module 972 is configured to storedata, programmatic software code and/or other information describedherein. In some embodiments, the software may include instructions that,when executed by the processing circuitry 970, causes the processingcircuitry 970 to perform the processes described herein with respect tothe wireless receiver 950.

According to this embodiment of the disclosure the wireless receiver 950may be configured to measure and monitor an input signal's attribute,such as may include one or more packets transmitted by wirelesstransmitter/receiver 510 for the purpose of paging another device, asdiscussed above with reference to FIG. 4 and packets transmitted for thepurpose of soliciting a remote name request, as discussed above withreference to FIGS. 6 and 7. Such packets may include Poll and Nullpackets. Also the wireless receiver 950 may be configured to measure andmonitor an input signal's attribute, such as may include one or morepackets transmitted by another Bluetooth device that has been paged bythe wireless transmitter/receiver 510, as discussed above with referenceto FIG. 4 and packets transmitted by that other Bluetooth device inresponding to the soliciting a remote name request by the wirelesstransmitter/receiver 510 as discussed above with reference to FIGS. 6and 7. Such packets may include Poll and Null packets. The memory module972 may store instructions for executing any method mentioned in theBluetooth Specification, input signals, and results of processing of theprocessor 971 signals to be outputted and the like.

According to an embodiment of the disclosure the RF transmitter/receiver510 may be configured to transmit and receive signals and the processingcircuitry 930 may be configured to prepare the transmitted and receivedsignal attributes based upon the Bluetooth Specification. Such packetsmay include Null, Poll, FHS and DM1 packets that are to be transmittedand received by a wireless station that is based upon the BluetoothSpecification. The memory module 932 may store instructions forexecuting any method mentioned in the specification, input signals, andresults of processing of the processor 931, signals to be outputted andthe like.

To aid understanding of the present embodiments, Slave 550 is shown inFIG. 9. Slave 550 is not an element of the example wirelesscommunication system 900. Slave 550 may receive transmissions from theMaster 510, and transmissions from the Slave 550 may be received by thewireless Master 510 and by the wireless receiver 950.

According to another embodiment of the disclosure, the wireless receiver950 may be configured to receive the transmissions of another wirelesscommunication device, and in particular Slave 550, and the processingcircuitry 970 may be configured to monitor an attribute of the Slave550, and determine the value of the time of arrival of packets from theSlave 550. In addition, according to an embodiment of the disclosure thewireless receiver 950 may be configured to measure the times ofdeparture of the transmissions from the wireless Master 510. These timesmay be accomplished by outputting a trigger that is timed to coincidewith the reception packet from the other wireless device or the Master510. This trigger may then be used to read the time from the time clock995. Time clock 995 may have a precision that is higher than theinternal timer that is part of the wireless receiver 950.

According to an embodiment of the disclosure the Master 510 may beconfigured to transmit and receive packets to and from another wirelesscommunication device and the processor 931 may be configured to preparethe attributes of the packet to be transmitted.

According to an embodiment of the disclosure, a general purposeprocessor 990 may be used to control the operations of the communicationsystem 900 and in particular the Master 510 and wireless receiver 950.The general purpose processor 990 may also carry out the variouscalculations as described in this disclosure and may also prepare themeasurement results for disclosure to an operator or user. In someembodiments, the general purpose processor 990 can be a computing devicesuch as a tablet computer, desktop computer, laptop computer, ordistributed computing, e.g. cloud computing. In some embodiments, thegeneral purpose processor 990 can be a processor/CPU in the tablet,laptop computer, desktop computer, or distributed computing environment,etc. In some embodiments the general purpose processor 990 may compriseintegrated circuitry for processing and/or control, e.g., one or moreprocessors and/or processor cores and/or FPGAs and/or ASICs configuredto execute programmatic software instructions and may include a memorymodule to execute programmatic code stored in the general purposeprocessor or another device. It is also noted that the elements of themeasuring station 990 can be included in a single physicaldevice/housing or can be distributed among several different physicaldevices/housings. Processor 990 may be used to perform the variouscalculations as described in this disclosure and may also prepare themeasurement results for disclosure to an operator or user.

According to an embodiment of the disclosure, a platform location module992 may be used to input, via the data bus 985, to the general purposeprocessor 990 and/or the processing circuitry 970 the location of theplatform that is carrying the wireless communication device 900. Theplatform location module 992 may comprise navigation equipment such as aGPS receiver.

FIG. 10 is a flow diagram of a process 1000 of one embodiment of thedisclosure for determining the location of a Bluetooth device. Process1000 may start with step 1015 where the Master 510 (acting as a wirelessreceiver/transmitter), may initiate the paging sequence, as discussedabove with reference to FIG. 4, with the target device, Slave 550. Step1015 may be followed by step 1020 where the wireless receiver 950,performing the functions of a Bluetooth protocol analyzer, is waitinguntil the reception of the FHS packet, as discussed above with referenceto FIG. 4 step 403. When the FHS packet is received, step 1020 may befollowed by step 1025 where the reception time is recorded as time to,together with the location of the wireless communication system 900which is provided by the platform location module 992, step 1022. Step1025 may be followed by step 1030 where the Master 510, performing thefunctions of the Master 510, may initiate the sequence of packetexchanges for the remote name request with the target device, Slave 550,as discussed above with reference to FIG. 6 and FIG. 7. Step 1030 may befollowed by step 1035 where the wireless receiver 950, performing thefunctions of a Bluetooth protocol analyzer, receives packets transmittedby the Master 510 and responding packets transmitted by the targetdevice, Slave 550 as discussed above with reference to FIG. 7. Ifpackets are received, then step 1035 may be followed by step 1045 wherea check is carried out to determine if the received packet is a Poll ora Null and if so, the reception time is recorded as time t1, togetherwith the location of the wireless communication system 900, which isprovided by the platform location module992, step 1022. Step 1045, torecord the times of only Poll and Null packets is an optional step. Asdiscussed above with reference to FIG. 7, all the packets exchangedduring a remote name request sequence are single slot packets, and hencethe reception times of all the received packets may be recorded. Pollsand Nulls, however, are very common and a Null tends to always follow aPoll, and hence, the timing of the two packets is reliable. Step 1050may be followed by step 1055 where the timing reference is incrementedand the process returned to step 1035. The sequence of steps 1035, 10451050 and 1055 may result in a record of packet reception times, t1 to tnat step 1050. At step 1035, if a packet is not detected, step 1035 maybe followed by step 1040 where a check is made on the time betweenpackets.

As discussed above with reference to FIG. 6, the remote name sequencemay terminate after the LMP_detach packet 617 is sent. A timeout value,Ttimeout, is set and if the current time, t, is greater than the lastrecorded packet time, tn, by a value of Ttimeout or greater, then it maybe assumed that the remote name sequence has completed. A value in theorder of 7 seconds may be used for Ttimeout. If at step 1040 it isdetermined that the sequence has terminated, then step 1040 may befollowed by step 1060 where the time delay td may be calculated basedupon the recorded packet times, to tn, as discussed above with referenceto FIG. 5 and FIG. 8. Similarly, if at step 1045 it is determined thatthe sequence has terminated, due to the absence of Polls or Nulls, thenstep 1040 may be followed by step 1060. Step 1060 may be followed bystep 1065 where the location of the target device, Slave 550 may becalculated based upon previous sets of times together with the platformlocation information. These calculations may be performed by the generalpurpose processor 990 and/or the Processing Circuitry 930 and/or theProcessing Circuitry 970. The process may then return to step 1015.

Although it might be possible to not send the LMP_detach packet andhence attempt to maintain the connection longer, in this circumstancethere exists a possibility that the Slave 550 will re-synchronize andthe packet times may be affected. In another embodiment of thedisclosure, the calculation of td, in step 1060, and the calculation ofthe target location, in step 1065, may be carried out as each value oftn, together with the platform location, is recorded. In this case thesesteps, 1051 and 1052 may be added between steps 1050 and 1055.

In order for the wireless receiver 950, that is performing the functionsof a protocol analyzer, to follow the hopping sequence, the FHS packetneeds to be detected. Thus, for any burst of packets staring with thepolling sequence, the wireless receiver 950, performing the functions ofa Bluetooth protocol analyzer should receive the FHS packet in order tofollow the hopping sequence of the subsequent packets. In the embodimentdescribed above with reference to FIG. 10, at step 1020, the time of thedetection of the FHS packet is recorded as the first packet time, t0. Asdiscussed above with reference to FIG. 8 and equation (3), the firstpacket time, t0 should refer to a packet transmitted by the Master 510.Poll packets are transmitted by the Master 510 and Null packets aretransmitted by the Slave 550 and hence the reception times of just Pollsand Nulls could be recorded, where the time of the detection of a Pollpacket is recorded as the first packet time, t0.

As discussed above with reference to FIG. 6, the remote name requestsequence ends with an LMP_detach packet 617. A series of several Pollsand Nulls may continue before the connection is terminated. Step 1040determines when the connection is terminated and if so determined, byreturning the process to step 1015, a new Page and remote name requestsequence is started. In each sequence, starting and returning to step1015 the number of packets, mostly Polls and Nulls that are transmitted,may be in the order of 200. By this means, repetitive bursts of packetsare transmitted, separated by a time set by the Ttimeout in step 1040enabling the calculation of the location of the target device, Slave550. This sequence of bursts of packets takes place without any userintervention and without any indication to the user of the targetdevice, Slave 550.

A process 1100 of another embodiment of the disclosure for determiningthe target location of a second wireless device based on a plurality ofdetermined locations of the second wireless transmitter/receiver isdescribed with reference to FIG. 11. At each of the plurality ofdifferent locations of the wireless receiver, and for each establishmentof a communication between the first wireless transmitter/receiver andthe second wireless transmitter/receiver, the location of the wirelessreceiver and the first wireless transmitter/receiver is recorded (step1110). A plurality of packets transmitted by the first wirelesstransmitter/receiver and transmitted by the second wirelesstransmitter/receiver are received (step 1120). For each of the receivedplurality of packets, reception times of packets transmitted by thefirst wireless transmitter/receiver and the second wirelesstransmitter/receiver are recorded (step 1130). If a predefined amount oftime has passed without receipt of a packet (step 1140), a time delay,td, is calculated based at least in part on the recorded reception timeof each packet (step 1150), and a location of the second wirelesstransmitter/receiver is determined based on the calculated time delay(step 1160). A target location of the second wirelesstransmitter/receiver is determined based on a plurality of thedetermined locations of the second wireless transmitter/receiver.

As will be appreciated by one of skill in the art, the conceptsdescribed herein may be embodied as a method, data processing system,and/or computer program product. Accordingly, the concepts describedherein may take the form of an entirely hardware embodiment, an entirelysoftware embodiment or an embodiment combining software and hardwareaspects all generally referred to herein as a “circuit” or “module.”Furthermore, the disclosure may take the form of a computer programproduct on a tangible computer usable storage medium having computerprogram code embodied in the medium that can be executed by a computer.Any suitable tangible computer readable medium may be utilized includinghard disks, CD ROMs, optical storage devices, or magnetic storagedevices.

Some embodiments are described herein with reference to flowchartillustrations and/or block diagrams of methods, systems and computerprogram products. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable memory that can direct a computer or other programmable dataprocessing apparatus to function in a particular manner, such that theinstructions stored in the computer readable memory produce an articleof manufacture including instruction means which implement thefunction/act specified in the flowchart and/or block diagram block orblocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide steps for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

It is to be understood that the functions/acts noted in the blocks mayoccur out of the order noted in the operational illustrations. Forexample, two blocks shown in succession may in fact be executedsubstantially concurrently or the blocks may sometimes be executed inthe reverse order, depending upon the functionality/acts involved.Although some of the diagrams include arrows on communication paths toshow a primary direction of communication, it is to be understood thatcommunication may occur in the opposite direction to the depictedarrows.

Computer program code for carrying out operations of the conceptsdescribed herein may be written in an object oriented programminglanguage such as Java® or C++. However, the computer program code forcarrying out operations of the disclosure may also be written inconventional procedural programming languages, such as the “C”programming language. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer. In the latter scenario, theremote computer may be connected to the user's computer through a localarea network (LAN) or a wide area network (WAN), or the connection maybe made to an external computer (for example, through the Internet usingan Internet Service Provider).

While the above description contains many specifics, these should not beconstrued as limitations on the scope, but rather as an exemplificationof several embodiments thereof. Many other variants are possibleincluding, for examples: the details of the Bluetooth protocol analyzer,the time recording of different packet types, the value of Ttimeout,variations in the details of the wireless communications system.Accordingly, the scope should be determined not by the embodimentsillustrated, but by the claims and their legal equivalents.

It will be appreciated by persons skilled in the art that the presentinvention is not limited to what has been particularly shown anddescribed herein above. In addition, unless mention was made above tothe contrary, it should be noted that all of the accompanying drawingsare not to scale. A variety of modifications and variations are possiblein light of the above teachings without departing from the scope whichis limited only by the following claims.

What is claimed is:
 1. A method for a wireless receiver, the wirelessreceiver being in communication with a first wirelesstransmitter/receiver that pages a second wireless transmitter/receiverto establish a communication between the first wirelesstransmitter/receiver and the second wireless transmitter/receiver, thewireless receiver and the first wireless transmitter/receiver beingmovable to a plurality of different locations, the method comprising: ateach of the plurality of different locations of the wireless receiver,and for each establishment of a communication between the first wirelesstransmitter/receiver and the second wireless transmitter/receiver:determining the location of the wireless receiver and the first wirelesstransmitter/receiver; receiving a plurality of packets transmitted bythe first wireless transmitter/receiver and transmitted by the secondwireless transmitter/receiver; determining a reception time of each ofthe plurality of packets transmitted by the first wirelesstransmitter/receiver and the second wireless transmitter/receiver, thereception time of each of the plurality of packets having acorresponding time delay, td; and determining a target location of thesecond wireless transmitter/receiver based on the time delays.
 2. Themethod of claim 1, wherein the establishment of a communication betweenthe first wireless transmitter/receiver and the second wirelesstransmitter/receiver is initiated by a transmission of a Page messagefrom the first wireless transmitter/receiver to the second wirelesstransmitter/receiver, and wherein the plurality of packets transmittedby the first wireless transmitter/receiver and transmitted by the secondwireless transmitter/receiver is increased by a transmission of a LinkManagement Protocol (LMP) name request from the first wirelesstransmitter/receiver to the second wireless transmitter/receiver.
 3. Themethod of claim 1, wherein the received plurality of packets includes aFrequency Hopping Sequence (FHS) packet, the receipt of the FHS packettriggering the determining of the reception time of each of theplurality of packets.
 4. The method of claim 1, the method furthercomprising, for each of the received plurality of packets: identifying apacket type; and the determining of the reception times and thedetermining of the location of the wireless receiver being performed ifthe identified packet type is one of a first packet type and a secondpacket type.
 5. The method of claim 4, the method further including:determining whether a predefined amount of time without receipt of apacket has passed.
 6. The method of claim 5, the method furthercomprising: determining the corresponding time delay, td, for one of:each packet that is one of the first packet type and the second packettype based at least on the on the corresponding determined receptiontimes; and each of the received plurality of packets based at least onthe corresponding determined reception times; and wherein thedetermination of the time delay is performed immediately after one of:the determining of the reception time of each packet; and the predefinedamount of time without receipt of a packet has passed.
 7. The method ofclaim 5, wherein the identified packet type is an LMP_detach packet, theidentification of the LMP_detach packet triggering the determiningwhether the predefined amount of time without receipt of a packet haspassed.
 8. The method of claim 6, wherein determining a target locationof the second wireless transmitter/receiver is performed immediatelyafter the determination of the time delay, td.
 9. The method of claim 1,wherein determining a target location of the second wirelesstransmitter/receiver causes the first wireless transmitter/receiver topage the second wireless transmitter/receiver.
 10. A wireless receiver,the wireless receiver configured to receive packets from a firstwireless transmitter/receiver that pages a second wirelesstransmitter/receiver to establish a communication between the firstwireless transmitter/receiver and receive packets from the secondwireless transmitter/receiver, the wireless receiver and the firstwireless transmitter/receiver being movable to a plurality of differentlocations, the wireless receiver comprising: a receiver configured to:receive a plurality of packets transmitted by the first wirelesstransmitter/receiver and transmitted by the second wirelesstransmitter/receiver at each of the plurality of different locations ofthe wireless receiver and for each establishment of a communicationbetween the first wireless transmitter/receiver and the second wirelesstransmitter/receiver; and a processing circuitry configured to: at eachof the plurality of different locations of the wireless receiver:determine the location of the wireless receiver and the first wirelesstransmitter/receiver; determine a reception time of each of theplurality of packets transmitted by the first wirelesstransmitter/receiver and the second wireless transmitter/receiver, thereception time of each of the plurality of packets having acorresponding time delay, td; and determine a target location of thesecond wireless transmitter/receiver based on the time delays.
 11. Thewireless receiver of claim 10, wherein the establishment of acommunication between the first wireless transmitter/receiver and thesecond wireless transmitter/receiver is initiated by a transmission of aPage message from the first wireless transmitter/receiver to the secondwireless transmitter/receiver, and wherein the plurality of packetstransmitted by the first wireless transmitter/receiver and transmittedby the second wireless transmitter/receiver is increased by atransmission of a Link Management Protocol (LMP) name request from thefirst wireless transmitter/receiver to the second wirelesstransmitter/receiver.
 12. The wireless receiver of claim 10, wherein thereceived plurality of packets includes a Frequency Hopping Sequence(FHS) packet, the receipt of the FHS packet triggering the determiningof the reception time of each of the plurality of packets.
 13. Thewireless receiver of claim 10, the processing circuitry being furtherconfigured to: for each of the received plurality of packets, identify apacket type; and perform the determining of the reception times and thedetermining of the location of the wireless receiver if the identifiedpacket type is one of a first packet type and a second packet type. 14.The wireless receiver of claim 13, the processing circuitry beingfurther configured to: determine whether a predefined amount of timewithout receipt of a packet has passed.
 15. The wireless receiver ofclaim 14, the processing circuitry being further configured to:determine the corresponding time delay, td, for one of: each packet thatis one of the first packet type and the second packet type based atleast on the on the corresponding determined reception times; and eachof the received plurality of packets based at least on the correspondingdetermined reception times; and wherein the determination of the timedelay, td, is performed immediately after one of: the determining of thereception time of each packet; and the predefined amount of time withoutreceipt of a packet has passed.
 16. The wireless receiver of claim 14,wherein the identified packet type is an LMP_detach packet, theidentification of the LMP_detach packet triggering the determiningwhether the predefined amount of time without receipt of a packet haspassed.
 17. The wireless receiver of claim 15, wherein determining atarget location of the second wireless transmitter/receiver is performedimmediately after the determination of the time delay, td.
 18. Thewireless receiver of claim 10, wherein determining a target location ofthe second wireless transmitter/receiver causes the first wirelesstransmitter/receiver to page the second wireless transmitter/receiver.19. A method for a wireless receiver, the wireless receiver being incommunication with a first wireless transmitter/receiver that pages asecond wireless transmitter/receiver to establish a communicationbetween the first wireless transmitter/receiver and the second wirelesstransmitter/receiver, the wireless receiver and the first wirelesstransmitter/receiver being movable to a plurality of differentlocations, the method comprising: at each of the plurality of differentlocations of the wireless receiver, and for each establishment of acommunication between the first wireless transmitter/receiver and thesecond wireless transmitter/receiver: determining the location of thewireless receiver and the first wireless transmitter/receiver; receivinga plurality of packets transmitted by the first wirelesstransmitter/receiver and transmitted by the second wirelesstransmitter/receiver; identifying a packet type for each of theplurality of packets; determining a reception time of each of theplurality of packets transmitted by the first wirelesstransmitter/receiver and the second wireless transmitter/receiver, thereception time of each of the plurality of packets having acorresponding time delay, td; determining the corresponding time delay,td, for one of: each packet that is one of a first packet type and asecond packet type based at least on the on the corresponding determinedreception times; and each of the received plurality of packets based atleast on the on the corresponding determined reception times; thedetermination of the time delay, td, being performed immediately afterone of: the determining of the reception time of each packet; and apredefined amount of time without receipt of a packet has passeddetermining a target location of the second wirelesstransmitter/receiver, td, based on the time delays.
 20. The method ofclaim 19, wherein the time delay, td, is determined as:td=(Shift Time,MOD (2×slot time)−slot time)/2, wherein Shift Time, MOD(2×slot time)>slot time; and where “Shift Time” is a determinedreception time of a packet referenced to the determined reception timeof a first received packet by the wireless receiver, and “slot time” isa time division multiplex (TDM) slot duration of a wireless systemcomprising the wireless receiver, the first wirelesstransmitter/receiver and the second wireless transmitter/receiver.